<?php
define('FPDF_FONTPATH','font/');
require('fpdf17/fpdf.php');

$table_default_table_type = array(
    'TB_ALIGN' => 'L' , //table align on page
    'L_MARGIN' => 25 , //space to the left margin
    'BRD_COLOR' => array( 0 , 92 , 177 ), //border color
    'BRD_SIZE' => '0.3' , //border size
    );


class PDF extends FPDF
{

//cabecera Paginas
function Header()
{
    // Logo
    $this->Image('imagenes/logo_pdf.png',10,8,33);
    // Arial bold 15
    $this->SetFont('Arial','B',16);
    // Movernos a la derecha
    $this->Cell(80);
    // Título
    $this->ln(10);
    $this->SetTextColor(246,202,47);
    $this->Cell(200,10,'REQUERIMIENTOS DE PROYECTOS',0,0,'C') ;
    // Salto de línea
    $this->Ln();
}

// Pie de página
function Footer()
{
    // Posición: a 1,5 cm del final
    $this->SetY(-15);
    // Arial italic 8
    $this->SetFont('Arial','I',8);
    // Número de página
    $this->Cell(0,10,'Pagina '.$this->PageNo(),0,0,'C');
}

function tabla($cabecera,$datos)
{
    $this->cabeceraTabla($cabecera) ;
    $this->datosTabla($datos);

}

function cabeceraTabla($cabecera)
{
    //Cabecera
    $this->SetFont('Arial','B',15);
    foreach($cabecera as $columna) {
        $this->Cell(40,7,$columna,1, 0 , 'C' ) ;
    }
    $this->Ln();
}

function datosTabla($datos)
{
    //Datos
    $this->SetFont('Arial','',8);
    foreach ($datos as $dato) {
        foreach ($dato as $columna) {
            $this->Cell(40,7,$columna,1,0,'C' );
        }
        $this->Ln () ;
    }
}

function CheckPageBreak($h)
{
	//If the height h would cause an overflow, add a new page immediately
	if($this->GetY()+$h>$this->PageBreakTrigger)
		$this->AddPage($this->CurOrientation);
}

function NbLines($w,$txt)
{
	//Computes the number of lines a MultiCell of width w will take
	$cw=&$this->CurrentFont['cw'];
	if($w==0)
		$w=$this->w-$this->rMargin-$this->x;
	$wmax=($w-2*$this->cMargin)*1000/$this->FontSize;
	$s=str_replace("\r",'',$txt);
	$nb=strlen($s);
	if($nb>0 and $s[$nb-1]=="\n")
		$nb--;
	$sep=-1;
	$i=0;
	$j=0;
	$l=0;
	$nl=1;
	while($i<$nb)
	{
		$c=$s[$i];
		if($c=="\n")
		{
			$i++;
			$sep=-1;
			$j=$i;
			$l=0;
			$nl++;
			continue;
		}
		if($c==' ')
			$sep=$i;
		$l+=$cw[$c];
		if($l>$wmax)
		{
			if($sep==-1)
			{
				if($i==$j)
					$i++;
			}
			else
				$i=$sep+1;
			$sep=-1;
			$j=$i;
			$l=0;
			$nl++;
		}
		else
			$i++;
	}
	return $nl;
}

function Fila($data)
{
	//Calculate the height of the row
	$nb=0;
	for($i=0;$i<count($data);$i++)
		$nb=max($nb,$this->NbLines($this->widths[$i],$data[$i]));
	$h=5*$nb;
	//Issue a page break first if needed
	$this->CheckPageBreak($h);
	//Draw the cells of the row
	for($i=0;$i<count($data);$i++)
	{
		$w=$this->widths[$i];
		$a=isset($this->aligns[$i]) ? $this->aligns[$i] : 'L';
		//Save the current position
		$x=$this->GetX();
		$y=$this->GetY();
		//Draw the border

		$this->Rect($x,$y,$w,$h);

		$this->MultiCell($w,5,$data[$i],0,$a,'true');
		//Put the position to the right of the cell
		$this->SetXY($x+$w,$y);
	}
	//Go to the next line
	$this->Ln($h);
}

function SetWidths($w)
{
	//Set the array of column widths
	$this->widths=$w;
}

function Alinear($a)
{
	//Alinear tabla
        $this->tdalign=$a;
}

}

$sql ="SELECT r.codigoRequisito as Codigo, r.nombreRequisito as Nombre ".
        ",concat(u.nombres,' ',u.apellidoPaterno,' ',u.apellidoMaterno) ".
        "as NombreCreador,r.fechaCreacion as Fecha, r.descripcion as Descripcion, ".
        "p.nombreProyecto as Proyecto, t.nombreTipoRequisito as Tipo, ".
        "r.version as version, e.nombreEstadoRequisito as estado, ".
        "r.codigoRequisitoPadre reqPadre FROM requisito r, usuario u, estadorequisito e, ".
        "proyecto p, tiporequisito t where r.creador=u.codigoUsuario ".
        "and r.codigoProyecto=p.codigoProyecto and ".
        "r.codigoTipoRequisito=t.codigoTipoRequisito and ".
        "e.codigoEstadoRequisito=r.codigoEstadoRequisito order by r.codigoProyecto ";


$link = mysql_connect("localhost", "root", "root") or die ("error conexion");
mysql_select_db("SAREQ", $link) or die ("error al selecciona bd");
$result = mysql_query($sql,$link);

$pdf = new PDF('P','mm','Letter');
$pdf->AddPage();
$pdf->Alinear('C');
//set the Table Type

//$pdf->SetWidths(array(30, 80, 50));
//$pdf->SetFont('Arial','B',10);
//$pdf->SetFillColor(71,100,248);
//$pdf->SetTextColor(246,202,47);
//$pdf->Fila(array('RUT','Nombre','Proyecto','Funcion'));



while($row=mysql_fetch_assoc($result))
{
    
    $pdf->SetTextColor(246,202,47);
    $pdf->SetFont('Arial','B',12);
    $pdf->Cell(200,10,'"'.$row['Proyecto'].'"',0,0,'C');
    $pdf->Ln(20);

    $pdf->SetWidths(array(20, 90, 70));
    $pdf->SetFillColor(71,100,248);
    $pdf->SetTextColor(246,202,47);
    $pdf->SetFont('Arial','B',12);
    $pdf->Fila(array('CODIGO','NOMBRE','FECHA'));

    $pdf->SetFillColor(255,255,255);
    $pdf->SetTextColor(0);
    $pdf->SetFont('Arial','B',12);
    $pdf->Fila(array($row['Codigo'],$row['Nombre'],$row['Fecha']));

    //SEGUNDA FILA DE INFORMACION
    $pdf->SetWidths(array(100, 80));
    $pdf->SetFillColor(71,100,248);
    $pdf->SetTextColor(246,202,47);
    $pdf->SetFont('Arial','B',12);
    $pdf->Fila(array('CREADOR','TIPO'));

    $pdf->SetFillColor(255,255,255);
    $pdf->SetTextColor(0);
    $pdf->SetFont('Arial','B',12);
    $pdf->Fila(array($row['NombreCreador'],$row['Tipo']));

     //TERCERA FILA DE INFORMACION
    $pdf->SetWidths(array(60,60,60));
    $pdf->SetFillColor(71,100,248);
    $pdf->SetTextColor(246,202,47);
    $pdf->SetFont('Arial','B',12);
    $pdf->Fila(array('CODIGO PADRE','VERSION','ESTADO'));

    $pdf->SetFillColor(255,255,255);
    $pdf->SetTextColor(0);
    $pdf->SetFont('Arial','B',12);
    $pdf->Fila(array($row['reqPadre'],$row['version'],$row['estado']));
   

      //CUARTA FILA DE INFORMACION
    $pdf->SetWidths(array(180));
    $pdf->SetFillColor(71,100,248);
    $pdf->SetTextColor(246,202,47);
    $pdf->SetFont('Arial','B',12);
    $pdf->Fila(array('DESCRIPCION'));

    $pdf->SetFillColor(255,255,255);
    $pdf->SetTextColor(0);
    $pdf->SetFont('Arial','B',12);
    $pdf->Fila(array($row['Descripcion']));
    


    $pdf->AddPage();

}

$pdf->Output();
?>
